Skip to content

Conversation

sandvige
Copy link
Contributor

@jstasiewicz jstasiewicz merged commit 5e4be40 into datastax:master Jan 30, 2014
mpenick pushed a commit that referenced this pull request Aug 3, 2016
Add a behat scenario ensuring a Rows object stays valid after fetching next page
mpenick pushed a commit that referenced this pull request Jul 19, 2018
Adding DSE graph data type test and minor refactoring
millerjp added a commit to millerjp/cpp-driver that referenced this pull request Sep 8, 2025
…erators (log datastax#11)

- Added CASS_ITERATOR_TYPE_VECTOR to allowed types in cass_iterator_get_value()
- This was causing iterator to return NULL elements even though decoding was correct
- Float vector round-trip test now passes successfully
- Fixed-length vector elements (float, int) now work properly
millerjp added a commit to millerjp/cpp-driver that referenced this pull request Sep 8, 2025
- Implement strict type checking for vector binding in prepared statements
- Parse VectorType from CustomType class name to validate element type and dimension
- Ensure both element type and dimension match exactly
- Prevents dangerous type mismatches (e.g., int vector in float column)
- All 17 integration tests passing with Cassandra 5.0.5

This is a critical fix for data integrity when using vectors with prepared statements.
millerjp added a commit to millerjp/cpp-driver that referenced this pull request Sep 8, 2025
…(log datastax#11)

- Created comprehensive test suite for ALL 19+ vector types
- Verified C++ <-> Go driver interoperability with bidirectional tests
- Both simple and prepared statements working for all types
- Round-trip verification implemented and passing
- Fixed query issues (removed unnecessary frozen, using keyspace prefixes)
- All primitive types tested: numeric, string, boolean, UUID, blob, timestamp, etc.
- Complex types (collections in vectors) partially working (API additions needed)
millerjp added a commit to millerjp/cpp-driver that referenced this pull request Sep 8, 2025
…(log datastax#11)

- Modified cass_vector.hpp to bypass type validation for "unknown" element types
- Updated decoder.cpp to handle "unknown" types with collection heuristics
- Added cass_vector_element_data_type() API for type introspection
- Created comprehensive integration tests for complex vector types

This implementation allows complex vectors (vector<list<int>>, vector<set<text>>, etc.)
to work with prepared statements despite receiving "unknown" type metadata from server.
Server-side validation ensures data integrity.

Key findings:
- C++ driver receives "unknown" for complex element types
- Go driver v2 receives full type information for same queries
- Both drivers use protocol v4, so not a protocol issue
- Write path works correctly, read path has iterator limitations
- Non-frozen collections work better for driver interoperability

Next: Investigate root cause of type metadata discrepancy between drivers
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants